import axios from "axios";
import {useAuthStore} from "@/types/rs/Auth";
const $http = axios.create({
  timeout: 10000, // 超时时间
});
// 请求拦截器
$http.interceptors.request.use(
    config => {
      // 尝试从localStorage获取用户信息
      let token = null;
      const userInfoStr = localStorage.getItem('userInfo');
      if (userInfoStr) {
        try {
          const userInfo = JSON.parse(userInfoStr);
          token = userInfo.token;
        } catch (e) {
          console.error('解析用户信息失败:', e);
        }
      }

      // 如果localStorage没有token，尝试从store获取
      if (!token) {
        const authStore = useAuthStore();
        token = authStore.userInfo?.token;
      }

      if (token) {
        config.headers.Authorization = `Bearer ${token}`;
      }
      return config;
    },
    error => Promise.reject(error)
);

// 响应拦截器（处理 token 失效）
$http.interceptors.response.use(
    response => response,
    error => {
      // if (error.response?.status === 401 || error.response?.status === 500) {
      if (error.response?.status === 401) {
        const authStore = useAuthStore();
        authStore.logout(); // 清除 token 和权限
        // 可跳转到登录页面
        window.location.href = '/login';
      }
      return Promise.reject(error);
    }
);
// 请求拦截器
// instance.interceptors.request.use(
//   config => {
//     const token = localStorage.getItem("token");
//     if (token) {
//       config.headers.Authorization = `Bearer ${token}`;
//     }
//     return config;
//   },
//   error => Promise.reject(error)
// );

// 响应拦截器
// instance.interceptors.response.use(
//   response => response.data,
//   error => {
//     // 统一错误处理
//     return Promise.reject(error);
//   }
// );

export default $http;